import request from '@/utils/request'

// ==================== 系统配置相关 ====================

/**
 * 获取系统配置列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getSystemConfigs(params) {
  return request({
    url: '/api/system/configs/',
    method: 'get',
    params
  })
}

/**
 * 获取所有配置（键值对形式）
 * @returns {Promise}
 */
export function getAllConfigs() {
  return request({
    url: '/api/system/configs/all_configs/',
    method: 'get'
  })
}

/**
 * 创建系统配置
 * @param {Object} data - 配置数据
 * @returns {Promise}
 */
export function createSystemConfig(data) {
  return request({
    url: '/api/system/configs/',
    method: 'post',
    data
  })
}

/**
 * 更新系统配置
 * @param {String} key - 配置键
 * @param {Object} data - 配置数据
 * @returns {Promise}
 */
export function updateSystemConfig(key, data) {
  return request({
    url: `/api/system/configs/${key}/`,
    method: 'put',
    data
  })
}

/**
 * 删除系统配置
 * @param {String} key - 配置键
 * @returns {Promise}
 */
export function deleteSystemConfig(key) {
  return request({
    url: `/api/system/configs/${key}/`,
    method: 'delete'
  })
}

/**
 * 批量更新配置
 * @param {Object} configs - 配置对象
 * @returns {Promise}
 */
export function batchUpdateConfigs(configs) {
  return request({
    url: '/api/system/configs/batch_update/',
    method: 'post',
    data: { configs }
  })
}

/**
 * 重置为默认配置
 * @returns {Promise}
 */
export function resetDefaultConfigs() {
  return request({
    url: '/api/system/configs/reset_defaults/',
    method: 'post'
  })
}

// ==================== 用户日志相关 ====================

/**
 * 获取用户日志列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getUserLogs(params) {
  return request({
    url: '/api/system/logs/',
    method: 'get',
    params
  })
}

/**
 * 获取日志统计信息
 * @param {Number} days - 统计天数
 * @returns {Promise}
 */
export function getLogStatistics(days = 7) {
  return request({
    url: '/api/system/logs/statistics/',
    method: 'get',
    params: { days }
  })
}

/**
 * 清理过期日志
 * @param {Number} retentionDays - 保留天数
 * @returns {Promise}
 */
export function cleanupLogs(retentionDays = 90) {
  return request({
    url: '/api/system/logs/cleanup/',
    method: 'post',
    data: { retention_days: retentionDays }
  })
}

/**
 * 导出日志
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function exportLogs(params) {
  return request({
    url: '/api/system/logs/export/',
    method: 'get',
    params
  })
}

// ==================== 用户管理相关 ====================

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getUsers(params) {
  return request({
    url: '/api/system/users/',
    method: 'get',
    params
  })
}

/**
 * 创建用户
 * @param {Object} data - 用户数据
 * @returns {Promise}
 */
export function createUser(data) {
  return request({
    url: '/api/system/users/',
    method: 'post',
    data
  })
}

/**
 * 更新用户
 * @param {Number} userId - 用户ID
 * @param {Object} data - 用户数据
 * @returns {Promise}
 */
export function updateUser(userId, data) {
  return request({
    url: `/api/system/users/${userId}/`,
    method: 'put',
    data
  })
}

/**
 * 删除用户
 * @param {Number} userId - 用户ID
 * @returns {Promise}
 */
export function deleteUser(userId) {
  return request({
    url: `/api/system/users/${userId}/`,
    method: 'delete'
  })
}

/**
 * 激活用户
 * @param {Number} userId - 用户ID
 * @returns {Promise}
 */
export function activateUser(userId) {
  return request({
    url: `/api/system/users/${userId}/activate/`,
    method: 'post'
  })
}

/**
 * 停用用户
 * @param {Number} userId - 用户ID
 * @returns {Promise}
 */
export function deactivateUser(userId) {
  return request({
    url: `/api/system/users/${userId}/deactivate/`,
    method: 'post'
  })
}

/**
 * 重置用户密码
 * @param {Number} userId - 用户ID
 * @param {String} newPassword - 新密码
 * @returns {Promise}
 */
export function resetUserPassword(userId, newPassword) {
  return request({
    url: `/api/system/users/${userId}/reset_password/`,
    method: 'post',
    data: { new_password: newPassword }
  })
}

/**
 * 获取用户统计信息
 * @returns {Promise}
 */
export function getUserStatistics() {
  return request({
    url: '/api/system/users/statistics/',
    method: 'get'
  })
}

/**
 * 获取角色列表
 * @returns {Promise}
 */
export function getRoles() {
  return request({
    url: '/api/system/users/roles/',
    method: 'get'
  })
}
